# 使用带有 CUDA 11.3 的官方基础镜像（适配 PyTorch/TensorFlow GPU 版本）
FROM nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.04

# 设置环境变量（避免交互式提示和缓冲问题）
ENV DEBIAN_FRONTEND=noninteractive \
    PYTHONUNBUFFERED=1 \
    PATH="/opt/conda/envs/faceD/bin:$PATH" \
    LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"

# 安装系统依赖（精简版）
RUN apt-get update && apt-get install -y --no-install-recommends \
    wget \
    git \
    build-essential \
    libgl1-mesa-glx \
    && rm -rf /var/lib/apt/lists/*

# 安装 Miniconda（更轻量）
RUN wget https://repo.anaconda.com/miniconda/Miniconda3-py39_23.11.0-0-Linux-x86_64.sh -O miniconda.sh \
    && bash miniconda.sh -b -p /opt/conda \
    && rm miniconda.sh

# 将 conda 加入 PATH
ENV PATH="/opt/conda/bin:$PATH"

# 复制你的 environment.yml 到容器
COPY environment.yml /tmp/environment.yml

# 使用 Mamba 加速环境创建（比 conda 快 10 倍）
RUN conda install -n base -c conda-forge mamba -y \
    && mamba env create -f /tmp/environment.yml \
    && conda clean --all -y

# 激活环境的快捷方式（避免 source 问题）
RUN echo "conda activate faceD" >> ~/.bashrc
SHELL ["/bin/bash", "--login", "-c"]

# 设置工作目录并复制代码
WORKDIR /app
COPY . .

# 暴露端口（根据你的应用调整）
EXPOSE 8050

# 启动命令（假设你的主程序是 app.py）
CMD ["python", "app.py"]